package com.itbaizhan.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

/*基于注解式的Filter
* 在web.xml 的filter会先执行，高于注解式的Filter*/
//所有注解都一样，当只写一个属性时，可以不写属性名，有两个时一定要写属性名
@WebFilter("/*")
public class AnnotationFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("Annotation Filter");
        filterChain.doFilter(servletRequest,servletResponse);
    }

    @Override
    public void destroy() {

    }
}
/*基于注解式开发Filter
Filter支持注解式开发，通过@WebFilter注解替代web.xml中Filter的配置。

属性名	        类型	        作用
filterName	    String	    指定过滤器的 name 属性
urlPatterns	    String[]	拦截请求的URL，支持多个
value	        String[]	拦截请求的URL，支持多个
description	    String	    过滤器的描述
displayName 	String	    过滤器的显示名称
initParams	    WebInitParam[]	指定一组过滤器初始化参数，等价于 标签。

使用注解式开发Filter时，执行顺序会根据Filter的名称进行排序的结果决定调用的顺序。*/